CPU シミュレータを用いて継続的ベンチマークを安定化させる(外部記事)
が,
そのテストの時間が単なる時間計測で安定しなかった
一般に、クラウド管理された CI サービスでは、物理マシンの上に仮想マシンが構築されていて、その仮想マシンの上で job を実行します。物理的なマシン 1 台を複数のユーザ・複数の job で共有するので、非常に大きなノイズが発生します。
実際に、TravisCI で発生するノイズを調査した記事があり、これによると 50% のノイズが発生することが一般的だとされています (しかも 10,000% のノイズを持つ 4 つの外れ値を除外した上で...)。 CPUの実行命令数などをメトリクスにするよう変更した
誤差が大幅に減った